Javacard và Java Java Card

Ngôn ngữ

Theo các mức ngôn ngữ, Javacard là tập con chính xác của Java. Mọi ngôn ngữ khởi tạo của Javacard tồn tại trong Java và được xác thực. Các chương trình Javacard được biên dịch thành các Java class bởi trình biên dịch Java mà không cần đến sự chọn lựa đặc biệt (các file class được xử lý sau bởi các công cụ được chỉ định bởi nền Javacard). Tuy nhiên, nhiều đặc trưng của ngôn ngữ java - như lựa chọn runtime không được tích hợp trong thẻ thông minh (ví dụ loại int là loại mặc định của biểu thức Java; chế độ dọn rác của các đối tượng).

Applet

Applet là một mức cho phép xử lý bởi một request và đáp trả bằng một response bằng cách gửi dữ liệu hoặc mức response trở lại cho interface của các thiết bị.

Bytecode

Javacard bytecode chạy trên máy ảo Javacard là tập con các chức năng của Java byte code chạy trên JVM, nhưng sử dụng giải mã khác nhau được tối ưu cho kích thước. Một Javacard applet sử dụng ít bytecode hơn Java applet được biên dịch cùng mã nguồn Java. Vùng bộ nhớ này cần thiết trong tài nguyên của các thiết bị nhưu thẻ thông minh. Như một sự cân bằng trong thiết kế, có một số giới hạn và một số thuộc tính của Java không được hỗ trợ trong Javacard và giới hạn về kích thước. Các kĩ thuật tồn tại cho việc truyền tải kích thước giới hạn, như phân chia vùng code cho các trình ứng dụng sang các gói có kích thước giới hạn nhỏ hơn 64KiB.

Thư viện và runtime

Các lớp thư viện và runtime của Javacard chuẩn hỗ trợ tương đối khác với Java và sự giao thoa của chúng cũng tương đối nhỏ. Ví dụ, các lớp "quản lý bảo mật Java" không được hỗ trợ trong Javacard, thay vào đó nó được thực thi bởi máy ảo Javacard, và điện áp (không ổn định, các biến lưu ở RAM có thể là lớp thành viên) được hỗ trợ thông qua các lớp thư viện Javacard, trong khi chúng có ngôn ngữ truyền thống hỗ trợ Java.

Các đặc trưng chuyên biệt

Javacard runtime và máy ảo cũng hỗ trợ các tính năng nhất định trên nền Javacard

Tính ổn định

Với Javacard, các đối tượng được lưu trữ mặc định trên bộ nhớ ổn định (RAM ít được sử dụng trên các thẻ thông minh và nó chỉ sử dụng cho các đối tượng tạm thời hoặc bảo mật cao). Môi trường runtime cũng tốt như bytecode để quản lý các đối tượng ổn định.

Tính nguyên tử

Khi một thẻ thông minh được nhấn mạnh và được tin tưởng lưu trữ trên vùng bộ nhớ ổn định, tính ổn định này được cập nhật một cách riêng biệt. Các cá nhân viết các hàm để thực thi bởi cấu trúc bytecode riêng và các phương pháp API bảo đảm và Javacard runtime bao gồm một kĩ thuật thực thi giới hạn.

Sự cô lập applet

Tường lửa Javacard là một kĩ thuật cô lập các applet khác nhau được đưa ra trên thẻ và khác nhau với các thẻ khác. Nó cũng bao gồm các kĩ thuật chia sẻ cho phép một applet có thể tạo ra một đối tượng có thể thực thi trên applet khác.

Phát triển

Kĩ thuật lập trình được sử dụng trong Javacard là khác với so với chương trình Java bình thường. Dẫu vậy, javacard sử dụng một số tập con chuẩn mực của ngôn ngữ Java và sử dụng trình môi trường Java để phát triển và biên dịch Javacard.

JAVACARD 3.0

  1. Phiên bản cổ điển.
  2. Phiên bản kết nối.